//#include<iostream>
//using namespace std;
//
//int main()
//{
//	float a;
//	char b;
//	cin>>a>>b;
//	int x=((int)a==a?a:(int)a+1);
//	int res=20+x-1;
//	if(b=='y')res+=5;
//	cout<<res<<endl;
//	return 0;
//} 

//#include<iostream>
//using namespace std;
//const int N=1e5+10;
//int cost[N];
//int res[N];
//int n;
//
//
//int main()
//{
//	ios::sync_with_stdio(false);
//	cin.tie(0);
//	cin>>n;
//	for(int i=0;i<n;i++)cin>>cost[i];
//	res[0]=res[1]=0;
//	res[2]=min(cost[0],cost[1]);
//	for(int i=3;i<=n;i++)
//	{
//		res[i]=min(res[i-1]+cost[i-1],res[i-2]+cost[i-2]);
//	}
//	cout<<res[n];
//	return 0;
//}

#include<iostream>
using namespace std;
int n;
const int N=1e5+10;
string strs[N];
int res=N;
int main()
{
	string str1,str2;
	cin>>n>>str1>>str2;
	int f1=-1,f2=-1;
	if(str1.size()==0||str2.size()==0)
	{
		cout<<-1<<endl;
		return 0;
	}
	for(int i=1;i<=n;i++)
	{
		cin>>strs[i];
		if(strs[i]==str1)f1=i;
		if(strs[i]==str2)f2=i;
		if(f1!=-1&&f2!=-1)res=min(res,abs(f1-f2));
	}
	if(f1==-1||f2==-1)
	{
		cout<<-1<<endl;
	}
	cout<<res<<endl;
	return 0;
}
